package com.zb.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 提现表
 * </p>
 *
 * @author WEN
 * @since 2024-05-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="ZjWithdraw对象", description="提现表")
public class ZjWithdraw implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主健ID")
    private Long id;

    @ApiModelProperty(value = "商家ID")
    private Long custAccId;

    @ApiModelProperty(value = "提现单号")
    private String code;

    @ApiModelProperty(value = "提现状态：1-提现待审核，2-付款中/等待打款，3-打款完成，4-失败，5-驳回")
    private Integer status;

    @ApiModelProperty(value = "银行卡名称")
    private String name;

    @ApiModelProperty(value = "银行卡号")
    private String bankNo;

    @ApiModelProperty(value = "开户行")
    private String openingBank;

    @ApiModelProperty(value = "持卡人姓名")
    private String cardholderName;

    @ApiModelProperty(value = "网点ID")
    private Long applyNetworkId;

    @ApiModelProperty(value = "申请人ID")
    private Long applyNetworkEmpId;

    @ApiModelProperty(value = "申请人名称")
    private String applyNetworkEmp;

    @ApiModelProperty(value = "申请备注")
    private String applyRemark;

    @ApiModelProperty(value = "提现手续费策略：1-按比例收取(按提现总金额计算)，2-每间固定(按每单总金额计算)")
    private Integer withdrawHandlingFeeStrategy;

    @ApiModelProperty(value = "手续费比例，单位为%，当withdraw_handling_fee_strategy=1时生效")
    private BigDecimal handingFeeProportion;

    @ApiModelProperty(value = "每单固定手续费：当withdraw_handling_fee_strategy=2时生效")
    private BigDecimal handingFeeFixedOrder;

    @ApiModelProperty(value = "审核人ID")
    private Long checkEmpId;

    @ApiModelProperty(value = "审核人名称")
    private String checkEmp;

    @ApiModelProperty(value = "审核时间")
    private Date checkTime;

    @ApiModelProperty(value = "审核备注")
    private String checkRemark;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date gmtCreate;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date gmtUpdate;

    @ApiModelProperty("开户银行网点")
    private String openAccountBankNetwork;

    @ApiModelProperty("联行行号（跨行业务与行名不能同时为空）")
    private String bankCode;
}
